我們先分析一下昨天製造的模型
模型裡的所有淡藍色圖示都代表用戶能互動的組件。
長方形圖示代表行為(例如遊覽到網頁,按登入按鈕等。)
菱形代表組件能有不同選擇
箭頭代表組件可能的結果(被選擇,不被選擇,有效,空白等。)
綠色長方形是正面測試通過條件(positive assertion)
紅色長方形是負面測試通過條件(error cases)
所以這個模型的流程是:
兩個放在一起比較的時候我們可以看得到用圖示表示能夠更清楚表達程式的邏輯。因為只需要照著箭頭走就好了,不需要在腦中一直記著上一步是什麼。
模型程式裡有不同coverage level能讓我們生成不同級別的測試覆蓋率(test coverage)。
最基本的會確保每一個組件(all nodes)都有被測試到,而最複雜的會確保每一個有可能的組合(all possible paths)都被測試到。
我們先選擇最基本的覆蓋率,我們可以看到系統自動幫我們生成了三個不同的test case:
remember me被選擇
remember me不被選擇
密碼不正確
而如果選擇最複雜的話,系統幫我們生成了13個不同的情況,確保每一個不同箭頭的組合都有被測試到。
有了這些組合以後,我們就可以把這些組合輸出到管理軟體,連結到我們的user story裡。
這裡可以看到我們的user story號碼是131
回到模型程式,我們可以選擇要把模型邏輯export到其他程式。
然後選擇要export到哪一個user story,同時可以選擇要附上圖檔,BDD,測試用的數據等。
Export後我們可以看到13個test case
而每一個test case都有圖檔和BDD連結,能讓所有人都清楚了解這一個test case的邏輯是什麼
BDD內容
Scenario: Test-3-valid username-valid password-remember me selected
Given Josh is a registered user
When Josh navigates to the Login page
And he or she enters 'enabled EQUALS 1 AND account_non_expired EQUALS 1 AND account_non_locked EQUALS 1 AND credentials_non_expired EQUALS 1 AND rolename EQUALS ROLE_USER' into the login Username field
And he or she enters 'Demo123!' into the login Password field
And he or she submits the login request
And he or she clicks the Remember Me checkbox
Then Josh verifies he or she is at the Home page
And he or she verifies the remember-me cookie is present
但是我們可能不需要所有的不同組合,所以我們可以用大頭針選擇我們想要測試的組件,讓程式只深層需要測試這一個組件的test cases。
現在我們的程式邏輯,測試,BDD都有了。明天我們就開始來看開發和continuous integration方面需要的能力吧。
< 上一篇 Day06 - User Story & Requirements Modeling (Part 2)
> 下一篇 Day08 - Source code management